#ifndef _Game_H_
#define _Game_H_

#include "Menu/MenuPage.h"
#include <map>
#include <string>

class Game {
  public:
    static Game& instance();
    void initialise();
    void addPage(std::string, MenuPage*);

    void execute();
    void activate();
    void update();

    // functions used by the menu items to execute commands
    void playGame(void);
    void goToMenuPage(std::string);
    void exit();

  private:
    Game();
    Game(const Game&);
    ~Game();
    Game& operator=(const Game&);

    void render();

    void pollEvents();

    std::string current_page;
    
    std::map<std::string, MenuPage*> menu;

    bool done;
};


#endif

